package internal

import (
	"reflect"
	"server/game"
	"server/msg"

	"github.com/name5566/leaf/gate"
	"github.com/name5566/leaf/log"
)

func handleMsg(m interface{}, h interface{}) {
	skeleton.RegisterChanRPC(reflect.TypeOf(m), h)
}

func init() {
	// 玩家登录
	handleMsg(&msg.CG_login_Login{}, LoginHandler)
}

func LoginHandler(args []interface{}) {
	// 收到的 Hello 消息
	m := args[0].(*msg.CG_login_Login)
	// 消息的发送者
	a := args[1].(gate.Agent)

	// 输出收到的消息的内容
	log.Debug("hello %v", m.Name)

	if len(m.Name) < 1 {
		a.WriteMsg(&msg.GC_error{
			Code: msg.Error_need_username,
		})
		return
	}

	game.ChanRPC.Go("EnterRoom", a, m.Name)
}
